package com.xyht.sca_s.student_manage_system.modules.appDynamic.entity.resp;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 流程节点数据表
 * </p>
 *
 * @author XYHT
 * @since 2023-07-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("app_process_node_detail")
@ApiModel(value = "AppProcessNodeDetail对象", description = "流程节点数据表")
public class AppProcessNodeDetailResp implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "节点数据id")
    private String id;

    @ApiModelProperty(value = "应用id")
    private String appId;

    @ApiModelProperty(value = "申请表id")
    private String applicationId;

    @ApiModelProperty(value = "引用节点id")
    private String processNodeId;

    @ApiModelProperty(value = "节点名")
    private String name;

    @ApiModelProperty(value = "节点类型[1.申请人 2.审批 3.抄送 4.虚拟节点 5.结束节点 6.条件节点]")
    private Integer type;

    @ApiModelProperty(value = "节点顺序")
    private Integer sort;

    @ApiModelProperty(value = "审批人类型[1.角色 2.指定人 3.提交人自选 4.提交人本人]")
    private Integer approverType;

    @ApiModelProperty(value = "审批对象id")
    private String approverObjectId;

    @ApiModelProperty(value = "节点权限（json）")
    private List<AuthorityResp> authority;

    @ApiModelProperty(value = "是否允许转交")
    private Boolean isDeliver;

    @ApiModelProperty(value = "被转交人id")
    private String deliverId;

    @ApiModelProperty(value = "是否允许回退")
    private Boolean isRollback;

    @ApiModelProperty(value = "回退记录id")
    private String rollbackId;

    @ApiModelProperty(value = "是否需要签名")
    private Boolean isSign;

    @ApiModelProperty(value = "签名")
    private String sign;

    @ApiModelProperty(value = "是否需要印章")
    private Boolean isStamp;

    @ApiModelProperty(value = "印章")
    private String stamp;

    @ApiModelProperty(value = "是否需要审批意见")
    private Boolean isOpinion;

    @ApiModelProperty(value = "审批意见")
    private String opinion;

    @ApiModelProperty(value = "审批人id")
    private String allowUserId;

    @ApiModelProperty(value = "审批时间")
    private Date allowTime;

    @ApiModelProperty(value = "审批状态[1：待办  2：通过  3：驳回  4：已撤回  5：已驳回]")
    private Integer allowType;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "审批人用户信息")
    private AppApplicationUserResp allowUserInfo;
}
